home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-ROM Collection / Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso / auge4000 / 46 / lib / amiga / muls.a < prev    next >
Text File  |  1990-06-20  |  618b  |  40 lines

  1.  
  2.  
  3.         ;   muls
  4.         ;
  5.         ;   (c)Copyright 1990, Matthew Dillon, All Rights Reserved
  6.         ;
  7.         ;   32x32->32 multiply
  8.         ;
  9.         ;   args on stack, return result on stack
  10.         ;
  11.         ;   CANNOT DESTROY ANY REGS
  12.         ;
  13.         ;    8sp    10sp
  14.         ;    4sp    6sp
  15.  
  16.         section text,code
  17.         xdef    __muls
  18.         xdef    __mulu
  19.  
  20. __mulu:
  21. __muls:
  22.         movem.l D0/D1,-(sp) ; 0=D0H 2=D0L 4=D1H 6=D1L
  23.  
  24.         swap    D0        ; D0H
  25.         mulu.w    D1,D0        ; D1L   -> D0
  26.         swap    D1        ; D1H
  27.         mulu    2(sp),D1    ; D0L   -> D1
  28.         add.l    D1,D0        ;    +   -> D0 (D1 free)
  29.         swap    D0
  30.         clr.w    D0
  31.         move.w    2(sp),D1    ; D0L
  32.         mulu.w    6(sp),D1    ; D1L
  33.         add.l    D1,D0
  34.         addq.l    #8,sp        ; restore stack
  35.         rts
  36.  
  37.         END
  38.  
  39.  
  40.